內容簡介
《數據結構 用C語言描述(第2版)》根據教育部計算機類專業教學指導委員會制定的“數據結構與算法”課程大綱和《全國碩士研究生入學統一考試計算機專業基礎綜合考試大綱》的要求而編寫,跟蹤技術發展需要,教材體系科學,內容簡潔實用。
《數據結構 用C語言描述(第2版)》共10章。內容包括基本概念、基本結構(線性表、棧與佇列、串、數組與廣義表、樹、圖)和基本技術(查找方法與排序方法)三大部分,每章均附有小結與典型題例,並配有大量的例題、習題與實習題,連貫性強。與《數據結構 用C語言描述(第2版)》配套的教學資源豐富,按章節知識樹的結構構成,包括教學視頻、部分擴展內容、課程設計與課程實習指導、多媒體教學課件、算法源碼等,適合網路學習使用。
《數據結構 用C語言描述(第2版)》既可作為高等學校計算機及相關專業數據結構課程的教材,也可供從事計算機套用開發的工程技術人員參考使用。
本書共分10章,詳細介紹了各種數據結構以及查找、排序的各種方法,對每一種類型的數據結構都以實例為切入點,詳細敘述其基本概念、邏輯結構、存儲結構和常用算法。本書知識組織清晰、算法完整,便於讀者上手,有配套出版的《數據結構習題與實訓教程(C語言描述)(第2版)》(ISBN9787302409724),以便課後複習或參加各類技能考試及考研使用。 本書專為本科計算機類專業學生學習“數據結構”課程而編寫,本著注重理論與套用相結合的原則,選材精細,對基本理論的敘述深入淺出、通俗易懂。書中實例豐富,對主要算法均給出了C語言函式。為了便於教學,每章後配有例題及例題解答。
圖書目錄
第1章概述
1.1引言
1.2基本概念與術語
1.3抽象數據類型
1.4算法和算法的分析
1.4.1算法的基本概念
1.4.2算法的時間複雜度
1.4.3算法的空間複雜度
本章小結
第2章線性表
2.1線性表的邏輯結構
2.1.1線性表的引例
2.1.2線性表的定義
2.1.3線性表的基本操作
2.2線性表的順序存儲結構
2.2.1順序表結構
2.2.2順序表的基本操作
2.3線性表的鏈式存儲結構
2.3.1鏈式存儲結構
2.3.2單鍊表上的基本運算
2.3.3循環鍊表和雙向鍊表
2.4順序表與鍊表的比較
2.5線性表的套用
本章小結
第3章棧和佇列
3.1棧
3.1.1棧的引例
3.1.2棧的類型定義
3.1.3棧的順序存儲表示和操作的實現
3.1.4棧的鏈式存儲表示和操作的實現
3.2棧的套用
3.3佇列
3.3.1佇列的引例
3.3.2佇列的定義及其基本操作
3.3.3佇列的順序存儲表示和操作的實現
3.3.4佇列的鏈式存儲表示和操作的實現
3.4佇列的套用
本章小結
第4章串
4.1串的簡介
4.1.1串的定義
4.1.2串的各種運算簡介
4.2串的存儲結構
4.2.1串的定長順序存儲
4.2.2串的堆分配存儲
4.2.3串的塊鏈存儲
4.3串運算的實現
4.3.1樸素模式匹配算法
4.3.2模式匹配的KMP算法
4.3.3模式匹配的BruteForce算法
4.4串的套用
本章小結
第5章數組與廣義表
5.1數組的定義和運算
5.1.1數組的定義
5.1.2基本運算
5.2數組的順序存儲結構
5.2.1行優先存儲
5.2.2列優先存儲
5.3矩陣的壓縮存儲
5.3.1特殊矩陣——對稱矩陣和三角矩陣
5.3.2稀疏矩陣
5.4廣義表的定義與性質
5.4.1廣義表的定義
5.4.2廣義表的性質
5.5廣義表的存儲結構
5.5.1頭尾表示法
5.5.2孩子兄弟表示法
5.6廣義表的基本操作
5.7數組的套用
本章小結
第6章樹和二叉樹
6.1樹的概念和基本操作
6.1.1樹的引例
6.1.2樹的定義和基本術語
6.1.3樹的表示方法
6.1.4樹的基本操作
6.2二叉樹
6.2.1二叉樹的定義
6.2.2二叉樹的性質
6.2.3二叉樹的基本操作
6.3二叉樹的存儲結構
6.3.1順序存儲結構
6.3.2鏈式存儲結構
6.4二叉樹的遍歷
6.4.1前序遍歷
6.4.2中序遍歷
6.4.3後序遍歷
6.4.4層次遍歷
6.5線索二叉樹
6.5.1線索二叉樹的概念
6.5.2中序線索二叉樹的構造算法
6.5.3線索二叉樹的遍歷
6.6哈夫曼樹及其套用
6.6.1哈夫曼樹的定義
6.6.2構造哈夫曼樹
6.6.3哈夫曼樹的套用
6.7樹與森林
6.7.1樹的存儲結構
6.7.2樹、森林與二叉樹的轉換
6.7.3樹和森林的遍歷
6.8二叉樹的套用
本章小結
第7章圖
7.1圖的定義和基本術語
7.1.1圖的引例
7.1.2圖的定義
7.1.3圖的基本術語
7.2圖的存儲結構
7.2.1數組表示法
7.2.2鄰接表
7.2.3十字鍊表
7.2.4鄰接多重表
7.3圖的遍歷
7.3.1深度優先搜尋
7.3.2廣度優先搜尋遍歷
7.4圖的連通性問題
7.4.1無向圖的連通分量和生成樹
7.4.2有向圖的強連通分量
7.4.3最小生成樹
7.4.4關節點和重連通分量
7.5有向無環圖及其套用
7.5.1拓撲排序
7.5.2關鍵路徑
7.6最短路徑
7.6.1求某一源點到其餘各頂點的最短路徑
7.6.2每一對頂點之間的最短路徑
7.7圖的套用
本章小結
第8章查找
8.1基本概念
8.2靜態查找表
8.2.1順序表的查找
8.2.2有序表的查找
8.2.3靜態樹表的查找
8.2.4索引順序表的查找
8.3動態查找表
8.3.1二叉排序樹和平衡二叉樹
8.3.2B樹和B+樹
8.4哈希表
8.4.1哈希表的概念
8.4.2哈希函式的構造方法
8.4.3處理衝突的方法
8.4.4哈希表的查找及其分析
8.5查找的套用
本章小結
第9章排序
9.1排序的基本概念
9.2插入排序
9.2.1直接插入排序
9.2.2折半插入排序
9.2.3希爾排序
9.3交換排序
9.3.1冒泡排序
9.3.2快速排序
9.4選擇排序
9.4.1直接選擇排序
9.4.2樹型選擇排序
9.4.3堆排序
9.5歸併排序
9.6各種內部排序方法的比較
9.7排序的套用
本章小結
第10章檔案
10.1檔案的基本概念
10.1.1檔案引例
10.1.2檔案的定義
10.1.3檔案的分類
10.1.4檔案的操作
10.1.5檔案的組織
10.2順序檔案的概念
10.3索引檔案
10.3.1索引檔案的概念
10.3.2索引檔案的存儲
10.3.3索引檔案的檢索
10.4ISAM檔案和VSAM檔案
10.4.1ISAM檔案
10.4.2VSAM檔案
10.5直接存取檔案(散列檔案)
10.6多關鍵字檔案
10.6.1多重表檔案
10.6.2倒排檔案
本章小結
參考文獻